变量
变量是SenseFlow的“信息桥梁”,用于串联工作流中各节点的输入与输出,实现动态数据的流转和复杂逻辑的处理。通过变量,用户可以轻松在流程中实现数据共享和逻辑控制,打造更加智能和高效的应用。
具体的变量类型可以分为如下三类:
- 系统变量
- 定义:应用内部预设的系统级参数,可以被各节点全局读取。系统级变量均以
sys
开头 - 特点:无需手动配置,开箱即用,适用于需要快速获取全局信息的场景,如记录时间戳或跟踪会话状态。
- 常见内容:当前时间、设备信息、用户会话ID等
- 定义:应用内部预设的系统级参数,可以被各节点全局读取。系统级变量均以
- 环境变量
- 定义:用户自定义的全局变量,用于设置应用的固定参数。
- 特点:值可长期保存,适用于跨流程或多节点共享的数据,例如一些需要反复调用的配置项。
- 常见内容:API 密钥、默认语言设置、数据库连接参数等。
- 会话变量
- 定义:特定用户或会话中的动态数据容器,随交互过程实时更新,仅在Chatflow中使用。
- 特点:仅在当前会话有效,适用于需要个性化响应或实时动态处理的场景。
- 常见内容:用户输入内容、模型生成的中间结果、实时计算的参数等。
系统变量
系统变量是在工作流内预设的系统级参数,可以被工作流内的其他节点全局读取,系统级变量均以sys
开头。
Workflow类型
Workflow类型应用具有如下系统变量
变量名称 | 数据类型 | 说明 | 备注 |
---|---|---|---|
sys.files | |||
[LEGACY] | Array[File] | 文件参数,存储用户初始使用应用时上传的图片 | 图片上传功能需在应用编排页右上角的 “功能” 处开启 |
sys.user_id | String | 用户 ID,每个用户在使用工作流应用时,系统会自动向用户分配唯一标识符,用以区分不同的对话用户 | |
sys.app_id | String | 应用 ID,系统会向每个 Workflow 应用分配一个唯一的标识符,用以区分不同的应用,并通过此参数记录当前应用的基本信息 | 面向具备开发能力的用户,通过此参数区分并定位不同的 Workflow 应用 |
sys.workflow_id | String | Workflow ID,用于记录当前 Workflow 应用内所包含的所有节点信息 | 面向具备开发能力的用户,可以通过此参数追踪并记录 Workflow 内的包含节点信息 |
sys.workflow_run_id | String | Workflow 应用运行 ID,用于记录 Workflow 应用中的运行情况 | 面向具备开发能力的用户,可以通过此参数追踪应用的历次运行情况 |
Chatflow类型
Chatflow类型应用具有如下系统变量
变量名称 | 数据类型 | 说明 | 备注 |
---|---|---|---|
sys.query | String | 用户在对话框中初始输入的内容 | |
sys.files | Array[File] | 用户在对话框内上传的图片 | 图片上传功能需在应用编排页右上角的 “功能” 处开启 |
sys.dialogue_count | Number | 用户在与 Chatflow 类型应用交互时的对话轮数。每轮对话后自动计数增加 1,可以和 if-else 节点搭配出丰富的分支逻辑。 | |
例如到第 X 轮对话时,回顾历史对话并给出分析 | |||
sys.conversation_id | String | 对话框交互会话的唯一标识符,将所有相关的消息分组到同一个对话中,确保 LLM 针对同一个主题和上下文持续对话 | |
sys.user_id | String | 分配给每个应用用户的唯一标识符,用以区分不同的对话用户 | |
sys.app_id | String | 应用 ID,系统会向每个 Workflow 应用分配一个唯一的标识符,用以区分不同的应用,并通过此参数记录当前应用的基本信息 | 面向具备开发能力的用户,通过此参数区分并定位不同的 Workflow 应用 |
sys.workflow_id | String | Workflow ID,用于记录当前 Workflow 应用内所包含的所有节点信息 | 面向具备开发能力的用户,可以通过此参数追踪并记录 Workflow 内的包含节点信息 |
sys.workflow_run_id | String | Workflow 应用运行 ID,用于记录 Workflow 应用中的运行情况 | 面向具 备开发能力的用户,可以通过此参数追踪应用的历次运行情况 |
环境变量
环境变量专门用于保护工作流中的敏感信息,例如 API 密钥、数据库密码等。它们被存储在工作流配置中,而非直接写入代码,从而确保数据安全,并便于在工作流中共享和复用。
环境变量支持以下三种数据类型:
- String 字符串
- Number 数字
- Secret 密钥
注意事项:
- 环境变量可在大部分节点内全局引用
- 环境变量命名不可重复
- 环境变量为只读变量,不可写入
会话变量
会话变量专为多轮对话场景设计,适用于需要多次交互、信息上下文保持的情况。而 Workflow 类型的应用通常是线性、独立的单次任务流程,不涉及多轮交互。因此,会话变量仅在 Chatflow 类型(如聊天助手 → 工作流编排)应用中使用。
会话变量让应用开发者能够在同一个 Chatflow 会话中存储特定信息,并确保在整个工作流的多轮 对话中都能使用这些信息,比如上下文、或用户在对话中的偏好设置等。它就像为大型语言模型(LLM)提供一个“备忘录”,确保信息不会因为记忆错误而失真。
例如,你可以在对话的第一轮中将用户选择的语言偏好存储到会话变量中,之后,LLM 在回答问题时会参考这些信息,并在接下来的对话中继续使用用户指定的语言回复。
会话变量支持以下六种数据类型:
- String 字符串
- Number 数值
- Object 对象
- Array[string] 字符串数组
- Array[number] 数值数组
- Array[object] 对象数组
注意事项:
- 会话变量可在大部分节点内全局引用
- 会话变量的写入需要使用变量赋值节点
- 会话变量为可读写变量